<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div id="app">
        x: {{position.x}}
        y: {{position.y}}
    </div>
    <script type="module">
        import { createApp,reactive } from './node_modules/vue/dist/vue.esm-browser.js'
        const app = createApp({
          // props 接收外部传入的参数，是响应式的，不能被解构
          // context 包含 attrs、emit、slots
          // 返回的对象可以在模板、methods、computed、生命周期钩子中
          // 在 props 被解析完毕，组件实例被创建之前执行，无法通过 this 获取组件实例，无法获取 data/methods 等，this 执行 undefined；
          setup(){
            // reactive 创建响应式对象
            // const position = reactive({x:0,y:0})
            const position = {x:0,y:0}
            return{
                position
            }
          },
          mounted(){
              // 不是响应式的，值修改，但是页面数据不会变化
              // 需要 reactive 创建响应式对象
              this.position.x = 100
          }
        })
        console.log(app)
        app.mount('#app')
    </script>
</body>

</html>